package com.zonta.finance.serivce;


import com.zonta.finance.common.dto.TokenResponse;
import com.zonta.finance.domain.po.Member;
import com.zonta.finance.domain.form.GetBaseCodeForm;
import com.zonta.finance.domain.form.GetSmsCodeForm;
import com.zonta.finance.domain.form.PhonePasswordLoginForm;
import com.zonta.finance.domain.form.PhoneSmsCodeLoginForm;

public interface MemberLoginService {
    /**
     * 获取客户端id
     * @return
     */
    String getClientId();

    /**
     * 获取图形验证码
     * @param form 请求参数
     * @return
     */
    String getBase64Code(GetBaseCodeForm form);

    void sendSmsCode(GetSmsCodeForm form);
    boolean checkBase64Code(String clientId,String code);

    boolean checkSmsCode(String phone, String smsCode, String smsCodeType);

    /**
     * 手机密码登录
     * @param form 客户端id 手机号 密码 图形验证码
     * @return
     */
    TokenResponse phonePasswordLogin(PhonePasswordLoginForm form);

    TokenResponse loginSuccess(Member member, String clientId);

    /**
     * 手机短信登录
     * @param form  客户端id 手机号  图形验证码
     * @return
     */
    TokenResponse phoneSmsCodeLogin(PhoneSmsCodeLoginForm form);

    /**
     * 获取客户端token
     * @param clientId 客户端id
     * @return
     */
    TokenResponse getClientToken(String clientId);
}
